/* vue */
import { defineComponent } from "vue";
/* mixin */
import VersionControlBaseMixin from '@src/mixins/versionControlMixin/base';
/* version sparepart */
import {
  isShowSparePartModule,
  isShowSparePartPerson,
  isShowPartTransfer,
  isShowPartApply,
  isShowPartBack,
  isShowMoreSpareParts
} from '@shb-lib/version'

export default defineComponent({
  name: "version-control-sparepart-mixin",
  mixins: [VersionControlBaseMixin],
  computed: {
    /** 
     * @description 备件 模块 版本控制
    */
    sparePartVersionControl(): Record<string, boolean> {
      return {
        isShowSparePartModule: isShowSparePartModule(this._versionControlMap),
        isShowSparePartPerson: isShowSparePartPerson(this._versionControlMap),
        isShowPartTransfer: isShowPartTransfer(this._versionControlMap),
        isShowPartApply: isShowPartApply(this._versionControlMap),
        isShowPartBack: isShowPartBack(this._versionControlMap),
        isShowMoreSpareParts: isShowMoreSpareParts(this._versionControlMap)
      }
    },
    _isShowSparePartModule(): boolean {
      return this.sparePartVersionControl.isShowSparePartModule
    },
    _isShowSparePartPerson() {
      /** 
       * 不明白为什么这里会类型报错，在 ts 4.1.5 版本报错，4.9.5 是可以的，但是不影响使用。
       * 先忽略掉，后续再看看
      */
      // @ts-ignore
      return this.sparePartVersionControl.isShowSparePartPerson
    },
    _isShowPartTransfer() {
      /** 
       * 不明白为什么这里会类型报错，在 ts 4.1.5 版本报错，4.9.5 是可以的，但是不影响使用。
       * 先忽略掉，后续再看看
      */
      // @ts-ignore
      return this.sparePartVersionControl.isShowPartTransfer
    },
    _isShowPartApply() {
      /** 
       * 不明白为什么这里会类型报错，在 ts 4.1.5 版本报错，4.9.5 是可以的，但是不影响使用。
       * 先忽略掉，后续再看看
      */
      // @ts-ignore
      return this.sparePartVersionControl.isShowPartApply
    },
    _isShowPartBack() {
      /** 
       * 不明白为什么这里会类型报错，在 ts 4.1.5 版本报错，4.9.5 是可以的，但是不影响使用。
       * 先忽略掉，后续再看看
      */
      // @ts-ignore
      return this.sparePartVersionControl.isShowPartBack
    },
    _isShowMoreSpareParts() {
      /** 
       * 不明白为什么这里会类型报错，在 ts 4.1.5 版本报错，4.9.5 是可以的，但是不影响使用。
       * 先忽略掉，后续再看看
      */
      // @ts-ignore
      return this.sparePartVersionControl.isShowMoreSpareParts
    }
  }
})
